首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏RTSP/RTMP直播相关

    Linux|麒麟操作系统实现多路RTMP|RTSP播放

    ​ 技术背景 无论是Windows平台还是Linux,多路播放诉求非常普遍,比如针对智慧工地、展馆、教育等宏观场景下的摄像头展示,关于RTSP或RTMP直播播放器开发需要注意的点,可参考之前博客,总的来说有以下一些点 低延迟:大多数RTSP的播放都面向直播场景,所以,如果延迟过大,比如监控行业,小偷都走了,客户端才看到,或者别人已经按过门铃几秒,主人才看到图像,严重影响体验,所以,低延迟是衡量一个好的RTSP播放器非常重要的指标 H.265的播放和录制:除了H.264,还需要支持H.265,目前市面上的RTSP H.265摄像头越来越多,支持H.265的RTSP播放器迫在眉睫,此外,单纯的播放H.265还不够,还需要可以能把H.265 代码实现 本文以大牛直播SDK(官方)的Linux平台为例,介绍下RTMP或RTSP流多路播放集成。 总结 多路RTMP或RTSP播放,涉及到性能和多路之间音视频同步、长时间播放稳定性等问题,Linux平台可参考的资料比较少,可选的方案比较少,感兴趣的可酌情参考。 ​

    1.9K80发布于 2021-07-26
  • 来自专栏python3

    python rtsp

    # -*- coding: utf-8 -*- """ A demo python code that .. 1) Connects to an IP cam with RTSP 2) Draws RTP by Sampsa Riikonen. """ import socket import re import bitstring # if you don't have this from your linux ***************************************** ip="192.168.1.74" # IP address of your cam port=1616 adr="rtsp **************************************************************************** dest="DESCRIBE "+adr+" RTSP .com/  https://github.com/odie5533/Python-RTSP

    2.2K20发布于 2020-01-06
  • 来自专栏全栈程序员必看

    RTSP协议

    RTSP对流媒体提供诸如暂停、快进等控制,而它本身并不传输数据。RTSP的作用相当于流媒体服务器的远程控制。 2、RTSP与HTTP的区别与联系 联系:两者都用纯文本来发送消息,且RTSP协议语法也和HTTP类似。RTSP一开始这样设计,也是为了能够兼容使用以前写的HTTP协议分析代码。 区别:rstp有状态,不同的是RTSP的命令需要知道现在处于一个什么状态,也就是说RTSP的命令总是按照顺序来发送的,某个命令总在另外一个命令之前发送。RTSP不管处于什么状态都不会断掉连接。 RTSP版本 状态码 解释 CR LF 消息头 CR LF CR LF 消息体 CR LF 其中RTSP版本一般是RTSP/1.0,状态码是一个数值,200表示成功,解释是与状态码对应的文本解释,详细请见 交互流程 C表示rtsp客户端, S表示rtsp服务端。

    5.6K40编辑于 2022-09-06
  • 来自专栏用户1692782的专栏

    手撕RTSP协议系列(2)——Rtsp消息格式

    上一篇我们简单介绍了rtsp协议,本篇我们来看一下rtsp的消息结构! RTSP消息分为两大类,一类是请求消息(request),一类是回应消息(ressponse)! 说明: 请求消息由方法+URI+RTSP版本开头,之后跟一条或多条消息! URI:表示接收方的地址,如rtsp://192.168.1.201:554 CR:表示回车 LF:表示换行 RTSP使用消息类型和消息体来表示不同类型的消息。 最后一条消息要使用两个CR LF。 我们通过wireshark的抓包来实际看一个RTSP的请求消息: ? 如图中所示,该RTSP请求消息的方法为OPTIONS,请求的目标地址为rtsp://192.17.1.63:554,RTSP的版本为1.0; 接下来包含两种类型的消息,第一种为CSeq表示序列号,本次请求的序列号为

    4.5K52发布于 2020-10-10
  • 来自专栏TSINGSEE青犀视频

    EasyCVR在打包Linux版本出现source_rtsp_linux.go 文件报错导致无法打包

    EasyCVR同时具有Windows版本和Linux版本,两个版本在使用上是没有什么区别的,只有操作系统的区别,大家可以根据自己的操作系统自由选择。 在我们EasyCVR打包Linux版本时,出现source_rtsp_linux.go 文件的报错,导致无法打包。 从错误信息可以看出是source_rtsp_linux.go 文件报错,错误信息是 C 的代码转 GO 代码类型不匹配导致无法打包。 EasyStreamClient_Init 把chandle 加上unsafe.Pointer(&chandle) 重新尝试打包,这次虽然已经不报之前的错误了,但是依然无法正常打包: 此时我们找到项目中的source_rtsp_linux.go

    1.9K10发布于 2021-07-07
  • 来自专栏RTSP/RTMP直播相关

    Unity3D下Linux平台播放RTSP或RTMP流

    背景 尽管Windows平台有诸多优势,Linux平台的发展还是势不可挡,特别实在传统行业,然而Linux生态构建,总是差点意思,特别是有些常用的组件,本文基于已有的Linux平台RTSP、RTMP播放模块 ,构建Unity下的RTSP和RTMP直播播放。 先上个直观感受图,本视频以Windows平台采集秒表计时器窗体,然后编码打包传输到RTMP服务,Unity3D的Linux平台RTMP播放器拉流播放,整体延迟毫秒级。 unity推送linux2.jpg Linux平台,我们是回调的YUV的数据,也就是 NT_SP_E_VIDEO_FRAME_FROMAT_I420: /*定义视频帧图像格式*/ public enum 平台的少之又少,一方面Linux平台本身需求不大,另一方面,Linux平台这块,可参考的例程不多,实际上,如果已经完成Windows或Android平台下的核心功能实现,再移植到Linux下,非常方便。

    1.4K20编辑于 2022-04-01
  • 来自专栏全栈程序员必看

    rtsp html播放_浏览器视频播放rtsp

    从摄像机获取的RTSP视频流直接在浏览器中播放,这里采用vlc插件进行播放,设置步骤如下 1、下载32位的vlc播放器,安装时选择安装插件,安装路径不要有空格,注意64位播放器安装上也不能正常播放 events=’false’width=”720″height=”410″> object> div> body> 其中,value=’rtsp://184.72.239.149/vod/mp4://BigBuckBunny fullscreen:是否全屏 controls:显示默认的控件 4、目前测试IE浏览器和360浏览器可以正常支持vlc插件播放 5、若需要播放多个视频,将object标签拷贝几次,将id改一下,将不同的RTSP

    5.2K40编辑于 2022-11-07
  • 来自专栏用户1692782的专栏

    手撕RTSP协议系列(11)——RTSP_SET_PARAMETER

    上一篇介绍了RTSP的GET_PARAMETER消息,看到这个消息类型,我们很容易习惯性的想到应该还要有一个RTSP_SET_PARAMETER消息,如我我们所愿,RTSP确实有这样一条消息,本篇我们来看一看 URI表示rtsp的地址; Rtsp Version表示版本号; CSeq表示序列号; Content-length表示内容长度 Content-type表示内容类型; 之后跟着1个或多个参数及对应的值 RtspVersion表示Rtsp的版本号; 状态码和状态描述给出了对于设置某个参数的请求的回复状态,如状态码451,表示无效参数(Invalid Parameter)! 到这里,关于RTSP的主要的一些请求,我们基本就都了解了,当然,RTSP还有一些其他更加细节的请求,在实际中应用较少,就不再做详细介绍了!

    2.2K31发布于 2020-10-30
  • 来自专栏machh的专栏

    RTSP协议详解

    一,RTSP协议概述 RTSP(Real-TimeStream Protocol )是一种基于文本的应用层协议,在语法及一些消息参数等方面,RTSP协议与HTTP协议类似。 RTSP被用于建立的控制媒体流的传输,它为多媒体服务扮演“网络远程控制”的角色。尽管有时可以把RTSP控制信息和媒体数据流交织在一起传送,但一般情况RTSP本身并不用于转送媒体流数据。 RTSP引入了几种新的方法,比如DESCRIBE、PLAY、SETUP 等,并且有不同的协议标识符,RTSPrtsp 1.0,HTTP为http 1.1; 2. RTSP服务器可以为这些容器文件提供集合控制。 4. RTSP会话(RTSP session ): RTSP交互的全过程。 消息交互过程 C表示RTSP客户端,S表示RTSP服务端 1.

    4.7K30编辑于 2022-06-10
  • 来自专栏RTSP/RTMP直播相关

    Android平台如何实现外部RTSP|RTMP流注入轻量级RTSP服务模块(内网RTSP网关)

    技术背景今天分享的是外部RTSP或RTMP流,拉取后注入到本地轻量级RTSP服务模块,供内网小并发场景下使用,这里我们叫做内网RTSP网关模块。 内网RTSP网关模块,系内置轻量级RTSP服务模块扩展,完成外部RTSP/RTMP数据拉取并注入到轻量级RTSP服务模块工作,多个内网客户端直接访问内网轻量级RTSP服务获取公网数据,无需部署单独的服务器 内置轻量级RTSP服务模块和内置RTSP网关模块共同点:内置轻量级RTSP服务模块和内置RTSP网关模块,核心痛点是避免用户或者开发者单独部署RTSP或者RTMP服务,数据汇聚到内置RTSP服务,对外提供可供拉流的 RTSP URL,适用于内网环境下,对并发要求不高的场景,支持H.264/H.265,支持RTSP鉴权、单播、组播模式,考虑到单个服务承载能力,我们支持同时创建多个RTSP服务,并支持获取当前RTSP服务会话连接数 内置RTSP网关模块,实际上是RTSP/RTMP拉流模块+内置轻量级RTSP服务模块组合出来的。

    1.1K20编辑于 2023-05-17
  • 来自专栏用户1692782的专栏

    手撕RTSP协议系列(1)——Rtsp基本流程

    对于流媒体协议,rtsp协议也是很常见的,接下来我们继续手撕,手撕rtsp协议!本篇我们首先来简单了解一下rtsp协议并对其连接过程做一个概览! 1 rtsp协议简介 rtsp,英文全称 Real Time Streaming Protocol,RFC2326,实时流传输协议,是TCP/IP协议体系中的一个应用层协议! 2 rtsp基本交互过程 假设我们现在要向一个RTSP的sever发送请求获取数据,基本流程如下: ? OPTIONS C--->S 客户端向服务器端发现OPTIONS,请求可用的方法。 3 Rtsp抓包示例 最后,老规矩,协议的分析和学习少不了抓包,抓包少不了Wireshark!贴一张RTSP抓包的图,来个直观的感受! ? 本篇文章就到这里了,本文之后我们对RTSP有了一个大概的了解,之后我们的文章将详细介绍!下面的文章我们首先介绍一下RTSP的消息格式以及SDP的格式,然后针对每一条消息我们做详细的解释和介绍!

    12K53发布于 2020-10-10
  • 来自专栏RTSP/RTMP直播相关

    Linux平台Unity下RTMP|RTSP低延迟播放器技术实现

    在发布国产操作系统|Linux平台的RTMP|RTSP直播播放SDK之前,大牛直播SDK在Windows、Android、iOS平台已经有了非常成熟的技术积累,功能齐全、稳定性高、超低延迟、超低资源占用 国产操作系统和Linux上的RTMP|RTSP直播播放模块,视频绘制使用XLib相关库实现, 音频输出使用PulseAudio和Alsa Lib,除了常规功能如实时静音、快照、buffer time设定 Linux原生的RTSP、RTMP播放模块这里我们不做赘述,本文主要讲的是如何在Linux平台构建Unity下的RTSP和RTMP低延迟直播播放。 Unity侧,在Unity下完成绘制,这里就需要原生的RTMP、RTSP播放模块,拉流解码延迟非常低,数据投递效率非常高,无图无真相:Linux平台,我们是回调的YUV的数据,也就是 NT_SP_E_VIDEO_FRAME_FROMAT_I420 平台下Unity RTMP、RTSP直播播放器大概的实现参考,随着国产操作系统的推进,Linux下RTMP、RTSP高质量的播放器需求越来越大,Unity下,可以实现和Windows、Android等平台统一开发管理

    42300编辑于 2024-06-18
  • 来自专栏RTSP/RTMP直播相关

    RTSP协议探究和RTSP播放器技术实现

    RTSP协议探究RTSP播放器可广泛应用于对延迟要求比较高的场景下,比如协同操控相关的智能机器人或无人机、实时视频监控、远程视频会议、网络电视等。通过控制信令实现对流媒体数据的远程控制和传输管理。 同时,RTSP也可以基于HTTP进行隧道传输(RTSP-over-HTTP tunneling),此时默认端口为8080。 五、RTSP请求与响应请求方法:RTSP定义了多种请求方法,包括OPTIONS、DESCRIBE、SETUP、PLAY、PAUSE、TEARDOWN等。 如何实现RTSP播放器 本文以大牛直播SDK的Windows平台RTSP直播播放器为例,大概介绍下,如何集成RTSP直播播放能力。 :设置RTSP TCP 模式, 1为TCP, 0为UDP, 此接口仅RTSP有效;NT_SP_SetRtspTimeout:设置RTSP超时时间, timeout单位为秒,必须大于0;NT_SP_SetRtspAutoSwitchTcpUdp

    1.6K10编辑于 2024-08-08
  • 来自专栏RTSP/RTMP直播相关

    麒麟操作系统|Linux下低延时RTMP|RTSP直播播放实现

    ​背景 国产操作系统多为以Linux为基础二次开发的操作系统。 工信部对此表示,将继续加大力度,支持Linux的国产操作系统的研发和应用,并希望用户可以使用国产操作系统。 国产操作系统|Linux下RTMP|RTSP直播播放 在发布国产操作系统|Linux平台的RTMP|RTSP直播播放SDK之前,大牛直播SDK(官方)的直播播放SDK无需赘述,采用自研内核框架 本次发布的可用于国产操作系统和Linux上的的RTMP|RTSP直播播放SDK, 视频绘制使用XLib相关库实现, 音频输出使用PulseAudio和Alsa Lib实现,除了常规功能如实时静音、快照、 相关DEMO 大牛直播SDK发布的Linux平台播放器SDK支持多实例播放,以单个窗体播放为例,相关代码如下: const char* player_url_ = "rtsp://admin

    2K20发布于 2021-07-21
  • 来自专栏RTSP/RTMP直播相关

    轻量级RTSP服务和内置RTSP网关的区别

    好多开发者疑惑,什么是内置RTSP网关,和轻量级RTSP服务又有什么区别和联系? 设计架构图如下: 内网RTSP网关 内网RTSP网关模块,系内置轻量级RTSP服务模块扩展,完成外部RTSP/RTMP数据拉取并注入到轻量级RTSP服务模块工作,多个内网客户端直接访问内网轻量级RTSP 设计架构图如下: 二者区别和联系 内置轻量级RTSP服务模块和内置RTSP网关模块共同点: 内置轻量级RTSP服务模块和内置RTSP网关模块,核心痛点是避免用户或者开发者单独部署RTSP或者RTMP服务 RTSP服务,并支持获取当前RTSP服务会话连接数。 内置RTSP网关模块,实际上是RTSP/RTMP拉流模块+内置轻量级RTSP服务模块组合出来的。

    1.3K30发布于 2020-11-09
  • 来自专栏全栈程序员必看

    RTSP协议学习笔记

    第一部分:RTSP协议 一、RTSP协议概述 RTSP(Real-TimeStream Protocol )是一种基于文本的应用层协议,在语法及一些消息参数等方面,RTSP协议与HTTP协议类似。 RTSP被用于建立的控制媒体流的传输,它为多媒体服务扮演“网络远程控制”的角色。尽管有时可以把RTSP控制信息和媒体数据流交织在一起传送,但一般情况RTSP本身并不用于转送媒体流数据。 RTSP引入了几种新的方法,比如DESCRIBE、PLAY、SETUP 等,并且有不同的协议标识符,RTSPrtsp 1.0,HTTP为http 1.1; 2. RTSP服务器可以为这些容器文件提供集合控制。 4. RTSP会话(RTSP session ): RTSP交互的全过程。 消息交互过程 C表示RTSP客户端,S表示RTSP服务端 1.

    1.5K30编辑于 2022-11-01
  • 来自专栏全栈程序员必看

    保存rtsp视频流

    将视频流保存为.avi格式的本地文件 import cv2 cap = cv2.VideoCapture("rtsp://103.229.215.117:1554/s?

    2.6K120编辑于 2022-11-02
  • 来自专栏RTSP/RTMP直播相关

    Android平台实现RTSP拉流转发至轻量级RTSP服务

    ​技术背景我们在做Android平台RTSP转发模块的时候,有公司提出来这样的技术需求,他们希望拉取外部RTSP摄像头的流,然后提供个轻量级RTSP服务,让内网其他终端过来拉流。 回调上来的数据,可以作为轻量级RTSP服务的数据源(投递编码后数据),推送端,只要启动RTSP服务,然后发布RTSP流即可。 ;rtsp_handle_ = libPublisher.OpenRtspServer(0);if (rtsp_handle_ == 0) {Log.e(TAG, "创建rtsp server实例失败! = 0) {libPublisher.CloseRtspServer(rtsp_handle_);rtsp_handle_ = 0;Log.e(TAG, "创建rtsp server端口失败! ;} else {libPublisher.CloseRtspServer(rtsp_handle_);rtsp_handle_ = 0;Log.e(TAG, "启动rtsp server失败!

    34410编辑于 2024-07-08
  • 来自专栏全栈程序员必看

    rtsp 获取视频流 java_OpenCV – 如何捕获rtsp视频流

    例如,我们有工作rtsp流测试像:“rtsp://184.72.239.149/vod/mp4:BigBuckBunny_115k.mov”(它在发布这篇文章的时候工作) 现在我想在openCV中捕获这个视频流 (opencv 2.4.7 / 2.4.8)我的代码完全适用于本地电影文件,但当我尝试捕获rtsp时,我得到的信息如下:“无法读取电影文件RTSP://184.72.239.149/vod/mp4:BigBuckBunny _115k.mov” 我尝试过几种不同的方式: CvCapture *camera = cvCreateFileCapture(“rtsp://184.72.239.149/vod/mp4:BigBuckBunny vcap.open(“rtsp://184.72.239.149/vod/mp4:BigBuckBunny_115k.mov”)) { std::cout << “Error opening video

    3K130编辑于 2022-11-02
  • 来自专栏用户1692782的专栏

    基于rtsp的直播

    说到直播,我们一般比较容易想到的就是rtmp的直播,大家用的比较多,实际上使用rtsp也可以做直播,这一篇就讲一下如何基于rtsp构建直播场景。 部署安装EasyDarwin EasyDarwin下载地址: https://github.com/EasyDarwin/EasyDarwin/releases 笔者的EasyDarwin部署在linux 服务器上,故使用linux版本,实际可以根据自己的操作系统情况下载对应的版本。 下载后,解压: tar -xvf EasyDarwin-linux-8.1.0-1901141151.tar.gzcd EasyDarwin-linux-8.1.0-1901141151/ls 可以看到目录中内容如下 tcp -f rtsp rtsp://192.17.1.92/test2.sdp ?

    4.2K10发布于 2020-04-22
领券